package com.zhengtoon.mctoon.conv.utils;

/**
 * 描述
 *
 * @author huangjie
 * @version v1.0.0 2017/4/11
 *          Copyright 2017-04 北京思源政务通科技有限公司
 * @see com...
 * @since 2017/4/11 11:48
 */
public class EscapeUtils {

    public static String unescape(String src) {
        StringBuffer tmp = new StringBuffer();
        tmp.ensureCapacity(src.length());
        int lastPos = 0, pos = 0;
        char ch;
        while (lastPos < src.length()) {
            pos = src.indexOf("%", lastPos);
            if (pos == lastPos) {
                if (src.charAt(pos + 1) == 'u') {
                    ch = (char) Integer.parseInt(src
                            .substring(pos + 2, pos + 6), 16);
                    tmp.append(ch);
                    lastPos = pos + 6;
                } else {
                    ch = (char) Integer.parseInt(src
                            .substring(pos + 1, pos + 3), 16);
                    tmp.append(ch);
                    lastPos = pos + 3;
                }
            } else {
                if (pos == -1) {
                    tmp.append(src.substring(lastPos));
                    lastPos = src.length();
                } else {
                    tmp.append(src.substring(lastPos, pos));
                    lastPos = pos;
                }
            }
        }
        return tmp.toString();
    }

    public static void main(String[] args) {
        String stest = "%u65C5%u6E38%u53D1%u5C55%u59D4%u5458%u4F1A";
//        System.out.println(stest);
        System.out.println(unescape(stest));
    }
}